home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / C⁄C++ / Xconq 7.0d37 / lib / ww2-bn.g < prev    next >
Text File  |  1995-05-04  |  20KB  |  723 lines

  1. (game-module "ww2-bn"
  2.   (title "WWII, Battalion-level, Europe")
  3.   (blurb "Definitions for battalion-level WWII, European theater")
  4.   (variants (see-all true))
  5.   )
  6.  
  7. ;;; Non-motorized infantry.
  8.  
  9. (unit-type inf (long-name "infantry"))
  10. (unit-type inf-bicycle (long-name "bicycle infantry"))
  11. (unit-type inf-para (long-name "parachute infantry") (possible-sides "allied"))
  12. (unit-type inf-glider (long-name "glider infantry") (possible-sides "allied"))
  13. (unit-type inf-sec (long-name "security company") (possible-sides "allied"))
  14. (unit-type inf-ranger (long-name "rangers") (possible-sides "allied"))
  15. (unit-type inf-cmdo (long-name "commando") (possible-sides "allied"))
  16. (unit-type inf-fusil (long-name "fusilier") (possible-sides "german"))
  17. (unit-type inf-ost (long-name "Ost infantry") (possible-sides "german"))
  18. (unit-type inf-pion (long-name "pioniere") (possible-sides "german"))
  19.  
  20. (define non-mot-inf-bn-types
  21.   (inf inf-bicycle inf-para inf-glider inf-ranger inf-cmdo inf-fusil inf-ost inf-pion))
  22.  
  23. (define non-mot-inf-co-types (inf-sec))
  24.  
  25. (define non-mot-inf-types (append non-mot-inf-bn-types non-mot-inf-co-types))
  26.  
  27. (add non-mot-inf-bn-types image-name "inf-bn")
  28. (add inf-bicycle image-name "inf-bike-bn")
  29. (add non-mot-inf-co-types image-name "inf-co")
  30.  
  31. (add non-mot-inf-types acp-per-turn 3)
  32. (add inf-sec acp-per-turn 2)
  33. (add (inf-bicycle inf-ranger inf-cmdo) acp-per-turn 4)
  34.  
  35. (define allied-inf-types (inf-para inf-glider inf-sec inf-ranger inf-cmdo))
  36.  
  37. ;;; Motorized infantry.
  38.  
  39. (unit-type inf-mot (long-name "motorized infantry"))
  40. (unit-type inf-mg-co (long-name "machinegun company"))
  41. (unit-type inf-mot-sec (long-name "motorized security"))
  42. (unit-type inf-recon (long-name "recon") (possible-sides "allied"))
  43. (unit-type inf-fsj (long-name "Fallschirmjaeger") (possible-sides "german"))
  44. (unit-type inf-mot-pion (long-name "Pioniere") (possible-sides "german"))
  45.  
  46. (define mot-inf-bn-types (inf-mot inf-fsj inf-recon))
  47.  
  48. (define mot-inf-co-types
  49.   (inf-mg-co inf-mot-sec inf-recon inf-mot-pion))
  50.  
  51. (define mot-inf-types (append mot-inf-bn-types mot-inf-co-types))
  52.  
  53. (add mot-inf-bn-types image-name "inf-mot-bn")
  54. (add mot-inf-co-types image-name "inf-mot-co")
  55.  
  56. (add mot-inf-types acp-per-turn 8)
  57.  
  58. ;;; Tracked infantry.
  59.  
  60. (unit-type inf-armored (long-name "armored infantry"))
  61. (unit-type inf-pz-pion (long-name "Panzer pioniere") (possible-sides "german"))
  62. (unit-type inf-armored-recon (long-name "armored recon") (possible-sides "german"))
  63. (unit-type inf-lw-recon (long-name "Luftwaffe recon") (possible-sides "german"))
  64.  
  65. (define tracked-inf-types (inf-armored inf-pz-pion inf-armored-recon inf-lw-recon))
  66.  
  67. (add tracked-inf-types image-name "inf-tracked-bn")
  68.  
  69. (add (inf-armored inf-pz-pion) acp-per-turn 5)
  70. (add (inf-armored-recon inf-lw-recon) acp-per-turn 6)
  71.  
  72. (define inf-bn-types (append non-mot-inf-bn-types mot-inf-bn-types inf-armored inf-pz-pion inf-armored-recon))
  73. (define inf-co-types (append non-mot-inf-co-types mot-inf-co-types inf-lw-recon))
  74.  
  75. ;;; All infantry types together.
  76.  
  77. (define inf-types (append non-mot-inf-types mot-inf-types tracked-inf-types))
  78.  
  79. (add inf-types hp-max 12)
  80. (add inf-co-types hp-max 3)
  81.  
  82. ;;; Cavalry types.
  83.  
  84. (unit-type cav-mech (long-name "mechanized cavalry") (image-name "cav-sqdn"))
  85. (unit-type cav-mech-trp (long-name "mechanized cavalry troop") (image-name "cav-trp"))
  86.  
  87. (define cav-bn-types (cav-mech))
  88. (define cav-co-types (cav-mech-trp))
  89.  
  90. (define cav-types (cav-mech cav-mech-trp))
  91.  
  92. (add cav-types acp-per-turn 12)
  93.  
  94. ;;; Artillery types.
  95.  
  96. (unit-type arty-cd-cased (long-name "casemated coastal artillery"))
  97. (unit-type arty-cd-open (long-name "open coastal artillery"))
  98. (unit-type arty-horse (long-name "horse-drawn artillery battalion"))
  99. (unit-type arty-horse-bty (long-name "horse-drawn artillery battery"))
  100. (unit-type arty-para (long-name "parachute artillery"))
  101. (unit-type arty-glider (long-name "glider artillery"))
  102. (unit-type arty-rr (long-name "railroad artillery"))
  103.  
  104. (define german-fixed-arty-types
  105.   (arty-cd-cased arty-cd-open))
  106.  
  107. (add german-fixed-arty-types possible-sides "german")
  108.  
  109. (add german-fixed-arty-types acp-per-turn 2)
  110.  
  111. (add german-fixed-arty-types speed 0)
  112.  
  113. (add german-fixed-arty-types acp-to-fire 1)
  114.  
  115. (add german-fixed-arty-types range (12 10))
  116.  
  117. (define allied-non-mot-arty-types
  118.   (arty-para arty-glider))
  119.  
  120. (add allied-non-mot-arty-types possible-sides "allied")
  121.  
  122. (add allied-non-mot-arty-types acp-per-turn 6)
  123.  
  124. (add allied-non-mot-arty-types acp-to-fire 3)
  125.  
  126. (add allied-non-mot-arty-types range (8 6))
  127.  
  128. (define horse-arty-types
  129.   (arty-horse arty-horse-bty))
  130.  
  131. (add horse-arty-types acp-per-turn 3)
  132.  
  133. (add horse-arty-types acp-to-fire 1)
  134.  
  135. (add horse-arty-types range (8 12))
  136.  
  137. (add arty-rr acp-per-turn 6)
  138.  
  139. (add arty-rr acp-to-fire 3)
  140.  
  141. (add arty-rr range 20)
  142.  
  143. (add arty-rr range-min 5)
  144.  
  145. (define non-mot-arty-types
  146.   (append german-fixed-arty-types allied-non-mot-arty-types
  147.           horse-arty-types arty-rr))
  148.  
  149. (add non-mot-arty-types image-name "arty-bn")
  150. (add arty-cd-cased image-name "arty-cd-cased")
  151. (add arty-horse-bty image-name "arty-co")
  152.  
  153. (unit-type arty-group (long-name "artillery group") (possible-sides "allied"))
  154. (unit-type arty-hq (long-name "HQ artillery") (possible-sides "allied"))
  155. (unit-type arty-towed (long-name "towed artillery"))
  156. (unit-type arty-flak (possible-sides "german"))
  157. (unit-type arty-flak-bty (long-name "Flak battery") (possible-sides "german"))
  158. (unit-type arty-at (long-name "anti-tank battalion"))
  159. (unit-type arty-nebel (long-name "Nebelwerfer battalion") (possible-sides "german"))
  160. (unit-type arty-mortar (long-name "mortar battalion"))
  161. (unit-type arty-mortar4.2 (long-name "mortar battalion") (possible-sides "allied"))
  162. (unit-type arty-fortress-bn (long-name "fortress battalion"))
  163.  
  164. (define mot-arty-types
  165.   (arty-group arty-hq arty-towed arty-flak arty-flak-bty
  166.    arty-at arty-nebel arty-mortar arty-mortar4.2 arty-fortress-bn))
  167.  
  168. (add mot-arty-types image-name "arty-mot-bn")
  169. ;(add mot-arty-types image-name "arty-mot-co")
  170.  
  171. (add (arty-mortar arty-mortar4.2) image-name "mortar")
  172.  
  173. (add (arty-flak arty-flak-bty) image-name "flak")
  174.  
  175. (add mot-arty-types acp-per-turn 8)
  176.  
  177. (add mot-arty-types acp-to-fire 4)
  178.  
  179. (add mot-arty-types range (8 9 8 1 1 1 5 4 2 2))
  180.  
  181. (unit-type arty-nebel-bty (long-name "Nebelwerfer battery") (possible-sides "german"))
  182. (unit-type arty-armored (long-name "armored artillery"))
  183. (unit-type arty-hq-armored (long-name "tracked HQ artillery") (possible-sides "allied"))
  184. (unit-type arty-sp-at (long-name "self-propelled anti-tank battalion"))
  185. (unit-type arty-sp-at-co (long-name "self-propelled anti-tank company"))
  186.  
  187. (define tracked-arty-bn-types (arty-armored arty-sp-at))
  188.  
  189. (define tracked-arty-co-types (arty-nebel-bty arty-hq-armored arty-sp-at-co))
  190.  
  191. (define tracked-arty-types (append tracked-arty-bn-types tracked-arty-co-types))
  192.  
  193. (add tracked-arty-bn-types image-name "arty-armor-bn")
  194. (add tracked-arty-co-types image-name "arty-armor-co")
  195.  
  196. (add tracked-arty-types acp-per-turn 6)
  197.  
  198. (add tracked-arty-types acp-to-fire 2)
  199.  
  200. (add tracked-arty-types range (8 4 8 1 1))
  201.  
  202. (define arty-types (append non-mot-arty-types mot-arty-types tracked-arty-types))
  203.  
  204. (add arty-types hp-max 12)
  205.  
  206. ;;; Armor types.
  207.  
  208. (unit-type tank (long-name "tank battalion"))
  209. (unit-type assault-gun (long-name "assault gun battalion"))
  210. (unit-type tank-co (long-name "tank company"))
  211. (unit-type assault-gun-co (long-name "assault gun company"))
  212. (unit-type croc-co (long-name "crocodile company"))
  213.  
  214. (define armor-bn-types (tank assault-gun))
  215.  
  216. (define armor-co-types (tank-co assault-gun-co croc-co))
  217.  
  218. (define armor-types (append armor-bn-types armor-co-types))
  219.  
  220. (add armor-bn-types image-name "armor-bn")
  221. (add armor-co-types image-name "armor-co")
  222.  
  223. (add armor-types acp-per-turn 6)
  224. (add croc-co acp-per-turn 4)
  225.  
  226. (add armor-types hp-max 12)
  227.  
  228. ;; Headquarters types.
  229.  
  230. (unit-type hq-nebel-brg (long-name "nebelwerfer brigade HQ"))
  231. (unit-type hq-flak-reg (long-name "sturmflak regiment HQ"))
  232.  
  233. (unit-type hq-inf-div (long-name "infantry division HQ"))
  234. (unit-type hq-mot-div (long-name "motorized infantry division HQ"))
  235. (unit-type hq-air-div (long-name "airborne division HQ"))
  236. (unit-type hq-gren-div (long-name "panzergrenadier division HQ"))
  237. (unit-type hq-armor-div (long-name "armor division HQ"))
  238.  
  239. (unit-type hq-flak-korps (long-name "sturmflak korps HQ"))
  240. (unit-type hq-pz-korps (long-name "panzer korps HQ"))
  241. (unit-type hq-fsj-korps (long-name "fallschirmjaeger korps HQ"))
  242.  
  243. (unit-type hq-inf-corps (long-name "infantry corps HQ"))
  244.  
  245. (define german-hq-types
  246.   (hq-inf-div hq-nebel-brg hq-flak-reg hq-gren-div
  247.    hq-flak-korps hq-pz-korps hq-fsj-korps))
  248.  
  249. (add german-hq-types acp-per-turn 6)
  250.  
  251. (add german-hq-types possible-sides "german")
  252.  
  253. (define allied-hq-types
  254.   (hq-mot-div hq-air-div))
  255.  
  256. (add allied-hq-types possible-sides "allied")
  257.  
  258. (add allied-hq-types acp-per-turn (8 6))
  259.  
  260. (define generic-hq-types
  261.   (hq-armor-div hq-inf-corps))
  262.  
  263. (add generic-hq-types acp-per-turn 8)
  264.  
  265. (define hq-types (append german-hq-types allied-hq-types generic-hq-types))
  266.  
  267. (add hq-types image-name "inf-div-hq")
  268. (add (hq-flak-korps hq-pz-korps hq-fsj-korps) image-name "inf-corps-hq")
  269. (add hq-inf-corps image-name "inf-corps-hq")
  270.  
  271. (add hq-types hp-max 2)
  272.  
  273. (define corps-hq-types (hq-inf-corps hq-flak-korps hq-pz-korps hq-fsj-korps))
  274.  
  275. (define ground-unit-types (append inf-types cav-types arty-types armor-types hq-types))
  276.  
  277. (define mot-types (append mot-inf-types cav-types mot-arty-types hq-types))
  278.  
  279. (define tracked-types (append tracked-inf-types tracked-arty-types armor-types))
  280.  
  281. (define vehicle-types (append mot-types tracked-types))
  282.  
  283. (define bn-types (append inf-bn-types cav-bn-types))
  284. (define co-types (append inf-co-types cav-co-types armor-co-types))
  285.  
  286. ;;; Trains.
  287.  
  288. (unit-type train (possible-sides "german"))
  289.  
  290. (add train acp-per-turn 80)
  291.  
  292. ;;; Ships.
  293.  
  294. (unit-type landing-ship (image-name "ap"))
  295. (unit-type transport (image-name "ap"))
  296. (unit-type destroyer (image-name "dd"))
  297. (unit-type cruiser (image-name "ca"))
  298. (unit-type battleship (image-name "bb"))
  299.  
  300. (define ship-types (landing-ship transport destroyer cruiser battleship))
  301.  
  302. (add ship-types possible-sides "allied")
  303.  
  304. ;(add ship-types acp-per-turn 4)
  305. ;(add ship-types speed 99.00)
  306. (add ship-types acp-per-turn 80)
  307.  
  308. (add (destroyer cruiser battleship) acp-to-fire 20)
  309.  
  310. (add (destroyer cruiser battleship) range (6 8 12))
  311.  
  312. (add ship-types hp-max (6 6 6 12 18))
  313.  
  314. ;;; Aircraft.
  315.  
  316. (unit-type fighter-bomber (image-name "1e"))
  317. (unit-type light-bomber (image-name "4e"))
  318. (unit-type medium-bomber (image-name "4e"))
  319. (unit-type heavy-bomber (image-name "4e"))
  320.  
  321. (define aircraft (fighter-bomber light-bomber medium-bomber heavy-bomber))
  322.  
  323. (add aircraft possible-sides "allied")
  324.  
  325. (add aircraft acp-per-turn 4)
  326. (add aircraft speed 99.00)
  327.  
  328. ;;; Places.
  329.  
  330. (unit-type fort (image-name "fortress"))
  331. (unit-type fortification (image-name "walltown"))
  332. (unit-type coast-strongpoint (image-name "fortress"))
  333.  
  334. (define fort-types (fort fortification coast-strongpoint))
  335.  
  336. (add fort-types hp-max 8)
  337.  
  338. ;;; Supply-related units.
  339.  
  340. (unit-type mulberry (possible-sides "allied"))
  341. (unit-type port)
  342. (unit-type supply-depot)
  343.  
  344. (define supply-types (mulberry port supply-depot))
  345.  
  346. (unit-type village (image-name "town20"))
  347. (unit-type town (image-name "city18"))
  348.  
  349. (define town-types (village town))
  350.  
  351. (add town-types see-always true)
  352.  
  353. (add town-types hp-max (24 48))
  354.  
  355. (define place-types (append fort-types supply-types town-types))
  356.  
  357. ;;; Materials
  358.  
  359. (material-type supply)
  360.  
  361. ;;; Terrain and its properties.
  362.  
  363. (terrain-type sea (color "dodgerblue") (char ".")
  364.   (occurrence 10))
  365. (terrain-type clear (color "pale green") (char "+") (image-name "")
  366.   (occurrence 60))
  367. (terrain-type bocage (color "green") (char "#")
  368.   (occurrence 20))
  369. (terrain-type hill (color "sienna") (image-name "mountains") (char "^")
  370.   (occurrence 1))
  371. (terrain-type forest (color "forest green") (char "%")
  372.   (occurrence 8))
  373. (terrain-type swamp (color "yellow green")
  374.   )
  375. (terrain-type flooded (color "light blue")
  376.   (help "ground that is temporarily swampy")
  377.   )
  378. (terrain-type beach (color "tan") (image-name "desert")
  379.   )
  380. (terrain-type city (color "gray") (image-name "urban") (char "*")
  381.   (occurrence 1))
  382. (terrain-type river (color "blue")
  383.   (subtype border))
  384. (terrain-type road (color "gray")
  385.   (subtype connection) (subtype-x road-x))
  386. (terrain-type sec-road (color "dark gray")
  387.   (subtype connection))
  388. (terrain-type railroad (color "black")
  389.   (subtype connection))
  390.  
  391. (define land (clear bocage hill forest swamp flooded city beach))
  392.  
  393. (define roads (road sec-road))
  394.  
  395. ;;; Distances are all in meters.
  396.  
  397. (add t* elevation-min 0)
  398. (add t* elevation-max 1000)
  399. (add (sea swamp) elevation-max 0) 
  400.  
  401. (area (cell-width 5280))
  402.  
  403. ;;; Static relationships.
  404.  
  405. (table vanishes-on
  406.   (ground-unit-types sea true)
  407.   ((arty-rr train) t* true)
  408.   ((arty-rr train) railroad false)
  409.   (ship-types land true)
  410.   ;; Landing ships can go on the beach.
  411.   (landing-ship beach false)
  412.   (place-types sea true)
  413.   ;; ...except for mulberries.
  414.   (mulberry sea false)
  415.   )
  416.  
  417. ;; A cell has a capacity for basically six companies or two battalions.
  418.  
  419. (add t* capacity 6)
  420.  
  421. (table unit-size-in-terrain
  422.   (bn-types t* 3)
  423.   (co-types t* 1)
  424.   (arty-types t* 1)
  425.   (arty-sp-at t* 3) ; only large arty type
  426.   (armor-bn-types t* 2)
  427.   (hq-types t* 1)
  428.   ;; A port takes up no additional space.
  429.   (port t* 0)
  430.   ;; A town fills up the cell.
  431.   (town t* 6)
  432.   )
  433.  
  434. (add landing-ship capacity 9)
  435. (add transport capacity 9)
  436. (add fort-types capacity 12)
  437. (add town-types capacity 12)
  438.  
  439. (table unit-size-as-occupant
  440.   (u* u* 100)
  441.   (bn-types (landing-ship transport) 3)
  442.   (co-types (landing-ship transport) 1)
  443.   (arty-types (landing-ship transport) 1)
  444.   (arty-sp-at (landing-ship transport) 3) ; only large arty type
  445.   (armor-bn-types (landing-ship transport) 2)
  446.   (hq-types (landing-ship transport) 1)
  447.   ;; Stacking in towns is similar to stacking in terrain.
  448.   (bn-types fort-types 3)
  449.   (co-types fort-types 1)
  450.   (arty-types fort-types 1)
  451.   (arty-sp-at fort-types 3) ; only large arty type
  452.   (armor-bn-types fort-types 2)
  453.   (hq-types fort-types 1)
  454.   (bn-types town-types 3)
  455.   (co-types town-types 1)
  456.   (arty-types town-types 1)
  457.   (arty-sp-at town-types 3) ; only large arty type
  458.   (armor-bn-types town-types 2)
  459.   (hq-types town-types 1)
  460.   )
  461.  
  462. (table unit-capacity-x
  463.   (port transport 6)
  464.   )
  465.  
  466. (table unit-storage-x
  467.   ;; Any unit can get along for two days by itself.
  468.   (u* supply 18)
  469.   (co-types supply 6)
  470.   (hq-types supply 180)
  471.   (supply-depot supply 360)
  472.   )
  473.  
  474. ;;; Actions.
  475.  
  476. ;; (Acp is defined with each subset of types.)
  477.  
  478. ;; Units need some material to be able to act.
  479.  
  480. ;; Night shuts things down considerably.
  481.  
  482. (table acp-night-effect
  483.   ;; 1/2 of normal abilities.
  484.   (u* t* 50)
  485.   )
  486.   
  487. ;;; Movement.
  488.  
  489. (table mp-to-leave-terrain
  490.   (u* t* 1)
  491.   (u* swamp 2)
  492.   (u* flooded 2)
  493.   (vehicle-types t* 2)
  494.   ;; Armor can go cross-country.
  495.   (armor-types (clear bocage) 1)
  496.   (vehicle-types city 1)
  497.   ;; Standing water is a problem for vehicles.
  498.   (vehicle-types swamp 3)
  499.   (vehicle-types flooded 4)
  500.   ;; Advantage of roads.
  501.   (vehicle-types roads 0)
  502.   ;; Prevent land units from crossing the sea.
  503.   (u* sea 9999)
  504.   (ship-types sea 0)
  505.   (aircraft sea 0)
  506.   )
  507.  
  508. (table mp-to-enter-terrain
  509.   (u* t* 1)
  510.   (u* swamp 2)
  511.   (u* flooded 2)
  512.   (vehicle-types t* 2)
  513.   (vehicle-types city 1)
  514.   ;; Standing water is a problem for vehicles.
  515.   (vehicle-types swamp 3)
  516.   (vehicle-types flooded 4)
  517.   ;; Extra cost to cross rivers.
  518.   (u* river 1)
  519.   (vehicle-types river 3)
  520.   (tracked-types river 2)
  521.   ;; Advantage of roads.
  522.   (vehicle-types roads 0)
  523.   ;; Rail-only units.
  524.   ((arty-rr train) t* 9999)
  525.   ((arty-rr train) railroad 1)
  526.   ;; Accident prevention.
  527.   (ground-unit-types sea 9999)
  528.   (ship-types land 9999)
  529.   (landing-ship beach 1)
  530.   )
  531.  
  532. (table mp-to-traverse
  533.   (vehicle-types roads 1)
  534.   )
  535.  
  536. ;; No freebies for landing, we have to be in a port or on a beach.
  537.  
  538. (table ferry-on-entry
  539.   ((landing-ship transport) u* over-nothing)
  540.   )
  541.  
  542. (table ferry-on-departure
  543.   ((landing-ship transport) u* over-nothing)
  544.   )
  545.  
  546. ;;; Production.
  547.  
  548. (table base-production
  549.   ;; Corps HQs "produce" enough supply to support all the units that would
  550.   ;; be under their command, for about one day or so.
  551.   (corps-hq-types supply 300)
  552.   )
  553.  
  554. (table base-consumption
  555.   ;; Units are consuming all the time.
  556.   (u* supply 3)
  557.   (co-types supply 1)
  558.   ;; ... but not forts or towns.
  559.   (fort-types supply 0)
  560.   (town-types supply 0)
  561.   )
  562.  
  563. (table hp-per-starve
  564.   ;; Starving units ultimately die or surrender, so end up out of the
  565.   ;; game permanently.
  566.   (u* supply 6.00)
  567.   (fort-types supply 0)
  568.   (town-types supply 0)
  569.   )
  570.  
  571. ;;; Combat.
  572.  
  573. ;;; (Hp and range is defined with each set of types.)
  574.  
  575. (table acp-to-attack
  576.   (u* u* 1)
  577.   (vehicle-types u* 4)
  578.   ;; Artillery can't attack things directly (can still defend though).
  579.   (arty-types inf-types 0)
  580.   (arty-types armor-types 0)
  581.   (arty-types fort-types 0)
  582.   (arty-types town-types 0)
  583.   ((landing-ship transport) u* 0)
  584.   )
  585.  
  586. (table hit-chance
  587.   (u* u* 50)
  588.   (hq-types u* 0)
  589.   (u* hq-types 25)
  590.   (u* fort-types 5)
  591.   (u* town-types 100)
  592.   ((landing-ship transport) u* 0)
  593.   )
  594.  
  595. (table damage
  596.   (u* u* 1d5)
  597.   (hq-types u* 0)
  598.   (u* fort-types 1)
  599.   (u* town-types 1)
  600.   ((landing-ship transport) u* 0)
  601.   )
  602.  
  603. (table retreat-chance
  604.   (inf-types inf-types 10)
  605.   (armor-types inf-types 20)
  606.   (inf-types arty-types 20)
  607.   (armor-types arty-types 40)
  608.   (u* hq-types 50)
  609.   )
  610.  
  611. ;;; Capture.
  612.  
  613. (table capture-chance
  614.   ;; This is the chance to capture a mostly-abandoned fort.
  615.   (inf-types fort-types 50)
  616.   (armor-types fort-types 50)
  617.   ;; Towns never offer any sort of resistance.
  618.   (u* town-types 100)
  619.   )
  620.  
  621. (table protection
  622.   (inf-types fort-types 50)
  623.   (arty-types fort-types 40)
  624.   (armor-types fort-types 40)
  625.   (inf-types town-types 50)
  626.   (arty-types town-types 60)
  627.   (armor-types town-types 40)
  628.   )
  629.  
  630. ;; Infantry bounces back if given a chance to rest.
  631.  
  632. (add inf-types hp-recovery 0.25)
  633.  
  634. ;; Damage to forts is hard to repair.
  635.  
  636. (add fort-types hp-recovery 0.05)
  637.  
  638. ;; The Germans may want to destroy ports etc.
  639.  
  640. (add port acp-to-disband 1)
  641.  
  642. ;;; Backdrop.
  643.  
  644. (table out-length
  645.   ;; Most consumers of supply never give any up automatically.
  646.   (u* supply -1)
  647.   ;; Supply sources can share things around.
  648.   (hq-types supply 8)
  649.   (supply-depot supply 12)
  650.   )
  651.  
  652. (table in-length
  653.   (u* supply 12)
  654.   )
  655.  
  656. ;;; Random game synthesis (for testing mostly, will usually use fixed map and units).
  657.  
  658. (set synthesis-methods
  659.   '(make-random-terrain make-countries make-independent-units make-roads))
  660.  
  661. ;; need a French name generator for villages.
  662. ;(add village independent-density 1000)
  663.  
  664. (set country-radius-min 8)
  665.  
  666. (add sea country-terrain-min 4)
  667.  
  668. (add sea country-terrain-max 10)
  669.  
  670. ;; One of everything.
  671.  
  672. (add u* start-with 1)
  673.  
  674. (table favored-terrain
  675.   (u* t* 100)
  676.   (u* sea 0)
  677.   (ship-types t* 0)
  678.   (ship-types sea 100)
  679. )
  680.  
  681. (table road-chance
  682.   (town (village town) (50 100))
  683.   (village village 20)
  684.   )
  685.  
  686. (table road-into-chance
  687.   (land land 100))
  688.  
  689. ;; All units start out completely supplied.
  690.  
  691. (table unit-initial-supply (u* m* 9999))
  692.  
  693. ;;; Scenario fillins.
  694.  
  695. ;;; Getting the dates right.
  696.  
  697. (set calendar '(usual "hour" 8))
  698.  
  699. (set initial-date "8 6 Jun 1944")
  700.  
  701. (set initial-day-part 2)
  702.  
  703. (world 25000 (day-length 3))
  704.  
  705. ;;; The usual sides.
  706.  
  707. (set side-library '(
  708.   ((name "Allies") (adjective "Allied") (class "allied")
  709.    (color "blue") (emblem-name "white-star"))
  710.   ((name "Germany") (adjective "German") (class "german")
  711.    (color "black") (emblem-name "german-cross"))
  712.   ))
  713.  
  714. (game-module (notes (
  715.   "This is a generic battalion-level set of definitions, strongly oriented"
  716.   "towards the Normandy invasion timeframe."
  717.   ""
  718.   "The basic map scale is 2km/hex, 8 hours/turn."
  719.   )))
  720.  
  721. (game-module (design-notes (
  722.   )))
  723.